package com.core.system.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pojo.entity.SystemRoleEntity;
import com.pojo.dto.PageDto;
import com.pojo.dto.SystemRoleDto;
import com.pojo.dto.SystemTemplateDto;
import com.pojo.req.role.PermissionInsertReq;

import java.util.List;

/**
 * <p>
 * 系统角色表  服务类
 * </p>
 *
 * @author hewei
 * @since 2020-11-26
 */
public interface ISystemRoleService extends IService<SystemRoleEntity> {
    /**
     * 查询角色列表 （不分页）
     * @return
     */
    List<SystemRoleDto> selectRoleList();

    /**
     * 根据用户名获取用户 对应的角色
     * @param roleName
     * @return
     */
    List<SystemRoleDto> getRole(String roleName);

    /**
     *  角色分页列表
     * @param pageDto
     * @return
     */
    IPage<SystemRoleDto> selectRolePage(PageDto pageDto);

    /**
     * 根据id 获取角色详情
     * @param systemRoleDto
     * @return
     */
    SystemRoleDto selectRoleDetails(SystemRoleDto systemRoleDto);

    /**
     * 修改角色状态
     * @param systemRoleDto
     * @return
     */
    int updateStatus(SystemRoleDto systemRoleDto);

    /**
     * 修改所以菜单权限
     * @return
     */
    int updatePermission(PermissionInsertReq permissionInsertReq);

    /**
     * 查询所以菜单和权限
     * @return
     */
    List<SystemTemplateDto> getPermissionList(Long roleId);

    /**
     *  修改角色信息
     * @param systemRoleDto
     * @return
     */
    int updateRole(SystemRoleDto systemRoleDto);

    /**
     *  新增角色信息
     * @param systemRoleDto
     * @return
     */
    int insertRole(SystemRoleDto systemRoleDto);

    /**
     *  删除角色信息
     * @param systemRoleDto
     * @return
     */
    int deleteRole(SystemRoleDto systemRoleDto);

    /**
     * 批量删除角色
     * @param systemRoleDto
     * @return
     */
    int batchDeleteRole(SystemRoleDto systemRoleDto);
}
